﻿/**	lxm_import.h
 *	----	Create Time Stamp	--2007-04-12 22:00:20--
 *------------------------------------------------------------------------------
 *	Mean	:
 *	Author	:Nick Shallery	(nicknide@gmail.com)
 *	Version	:1.0.7.9	(2008-08-10 14:38:22)
 *------------------------------------------------------------------------------
**/	/*YOU HAVE ALL LEFT WITH THIS CODE WHILE YOU KEEP COMMENT IN EVERY COPY.*/

#if			!defined(__LXUT__MOD__LXM_IMPORT__NICK__K_IN_G__)
#define		__LXUT__MOD__LXM_IMPORT__NICK__K_IN_G__
//==============================================================================
//--------------------------------------------------------------------------
#if			!defined(__LOLIX__LOLIX_TYPE__K_IN_G__)
	#include	"../../lolix/lolix_type.h"
#endif	//	!defined(__LOLIX__LOLIX_TYPE__K_IN_G__)

//namespace	lolix{namespace pretty{
//	class	LOLIX_NO_VTABLE	vertex_buffer;
//}}

namespace lxut {
	using lolix::LOLIX_RETNV;
	namespace mod{
		class lxm_import;
	}
}


class LOLIX_NO_VTABLE lxut::mod::lxm_import
	: public lolix::itf
{
public:
	LOLIX_DEFINE_FACTORY((0x765c4d1b, 0x5bac48f0, 0x999052d1, 0x3cbdf71a), (lxm_import**));
	LOLIX_DEFINE_ITF_ID(0x84767b03, 0x95a0448d, 0xb46a6d45, 0xa1fdd781);
#pragma	pack(push, 4)
	typedef	struct _tagDataVertexPositionFormat
	{
		float	pos[3];	//	x, y, z, w
	}dvpf;
	typedef	struct	_tagDataFaceFormat
	{
		struct _tagVertex
		{
			unsigned int	idx;
			float			nml[3];
		};
		_tagVertex vtx[3];
	}dff;
#pragma	pack(pop)

	//LOLIX_INTERFACE(import_source	, LOLIX_RETNV	, (const char* begin, const char* end));

	//	out fmt : "name_1\0name_2\0name_last\0\0"
	//virtual	LOLIX_RETNV	LOLIX_CALL	enum_name(lolix::memory**)	= 0;

	//virtual	LOLIX_RETNV	LOLIX_CALL	select_name(const char*)	= 0;
	//	type : 3:dvpf 2:dff
	//virtual	LOLIX_RETNV	LOLIX_CALL	query_mesh(lolix::memory**, size_type type)	= 0;
	//LOLIX_INTERFACE(query_mesh		, LOLIX_RETNV	, (lolix::pretty::vertex_buffer**, const char* name));
};

SYS_REGIST_TYPE(lxut::mod::lxm_import);
SYS_REGIST_TYPE(lxut::mod::lxm_import::dff);
SYS_REGIST_TYPE(lxut::mod::lxm_import::dvpf);
SYS_REGIST_TYPE(lxut::mod::lxm_import::factory_type);

//--------------------------------------------------------------------------
//==============================================================================
#endif	//	!defined(__LXUT__MOD__LXM_IMPORT__NICK__K_IN_G__)
